package com.southminority.ethnic.until;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * 对象与JSON互转工具类（基于Jackson）
 */
public class JsonUtil {
    // 初始化Jackson的ObjectMapper（全局单例即可）
    private static final ObjectMapper objectMapper = new ObjectMapper();

    /**
     * 将对象转换为JSON字符串
     * @param obj 要转换的对象
     * @return JSON字符串
     * @throws JsonProcessingException 转换失败时抛出异常
     */
    public static String toJson(Object obj) throws JsonProcessingException {
        return objectMapper.writeValueAsString(obj);
    }

    /**
     * 将JSON字符串转换为指定类型的对象
     * @param json JSON字符串
     * @param clazz 目标对象的类
     * @return 转换后的对象
     * @throws JsonProcessingException 转换失败时抛出异常
     */
    public static <T> T fromJson(String json, Class<T> clazz) throws JsonProcessingException {
        return objectMapper.readValue(json, clazz);
    }
}
